1. Field of the Invention
The present invention relates generally to computer systems and, more particularly, to data modeling.
2. Related Art
Data models describe the organization of a database, which is generally a set of related files that are created and managed by a database management system. The database is typically part of a computer system that stores a large quantity of data organized in a manner that facilitates efficient storage, search, and retrieval. For example, businesses tend to store and require access to large quantities of data relating to specific business matters such as pertaining to employees, customers, inventory, and finances.
A relational database is a common type of database model. The relational database organizes the data in tables comprised of rows and columns, with each data element indexed by its particular row and column. Each row represents an entity, which is a thing of significance about which the organization wishes to hold information concerning. Each column in the corresponding row defines a characteristic or attribute of that entity, with certain columns possibly being designated as xe2x80x9ckeysxe2x80x9d that uniquely identify each row. Primary keys identify an indexed field that maintains the primary sequence of the file or table to access the row, while foreign keys identify a field in one table that is indexed in another table in order to relate or link the tables.
FIG. 1 illustrates a traditional data model table structure for an employee table 100. Employee table 100 is an exemplary table structure listing various attributes of an employee including identification (ID) such as a number, name, and salary. Employee table 100, for example, could be used to create a relational database employee table, with each row corresponding to a certain employee. In such a case, the first column would correspond to the identification number, the next column would correspond to the name, and the final column would correspond to the salary. Thus, the attributes (i.e., the columns) in an entity table are properties specific to an instance of that entity (i.e., the row).
A drawback of the traditional data model is that it may be difficult to add or change attributes. For example, companies differ from each other in terms such as products, services, scale, operating procedures, and organizational structures. Companies may also change internally due to changes such as restructuring, changing product lines, or ways of doing business. Consequently, all of the attributes may not be known, may not be well defined, or may change frequently over a certain period of time. In a complex, inter-related traditional data model, if an attribute must be changed or a new attribute added to a table, then this value must be added to each one of the related records in the database and the change reflected in the related, corresponding tables. This process is time-consuming and labor intensive and requires database maintenance to change the structure of the database.
As a result, there is a need for a database model that offers a flexible and generic database design.
The present invention provides a database model system and method which offer a flexible and generic database design. The present invention provides many advantages over traditional database modeling schemes and permits additions, deletions, or modifications of attributes of a table by adding, deleting, or modifying the data in an appropriate row and constructing the desired relationships. Consequently, database modifications require changes to the data rather than to the fundamental table definition and database schema. The database model may be incorporated into a computer system, for example, to deliver web pages to users on a computer network.
In accordance with some embodiments of the present invention, a method of structuring a database comprises providing a data object table having a minimal set of attributes, an attribute table having attributes corresponding to the data object table, and a value table having values corresponding to the attributes.
In accordance with other embodiments of the present invention, a method of structuring a database is provided comprising providing a category table, a content table containing content corresponding to categories in the category table, and a category contents table containing a mapping scheme that maps content contained in the content table to categories in the category table. An attribute table containing attributes for an application utilizing the database and an attribute values table containing values corresponding to attributes in the attribute table are also provided.
In accordance with yet other embodiments of the present invention, a computer system is provided comprising one or more server computers connected through a computer network and one or more computer programs executed by a server computer that manages data stored in a database having a structure in accordance with the embodiments described above.
A more complete understanding of the database model system and method will be afforded to those skilled in the art, as well as a realization of additional advantages thereof, by a consideration of the following detailed description of one or more embodiments. Reference will be made to the appended sheets of drawings that will first be described briefly.